﻿using System;
using System.Linq;
using System.Web;
using CodeGenerationPipeline.Contracts;
using System.IO;
using AbstraX.Contracts;
using System.Collections;
using System.Collections.Generic;
using Metaspec;
using AbstraX.Bindings;

namespace SolutionFramework.Web
{
    public class TestBuildFilter : IBuildFilter
    {
        public TestBuildFilter()
        {
            this.Enabled = true;
        }

        public string Name
        {
            get 
            {
                return "Test Build Filter";
            }
        }

        public bool Enabled { get; set; }

        public void OnGenerateFrom(List<IBindingsTree> bindings, ref bool abortGeneration)
        {
            
        }

        public void OnStepsAdded(List<IPipelineStep> steps)
        {
            
        }

        public void OnStepPreGenerate(IPipelineStep step, Dictionary<string, IElementBuild> builds, DirectoryInfo workspaceDirectory, ref bool abortStep)
        {
            
        }

        public void OnStepPreGenerate(IPipelineStep step, ICodeGenerationPackage incomingPackage, ref bool abortStep)
        {
            
        }

        public void OnStepPostGenerate(IPipelineStep step, ICodeGenerationPackage outgoingPackage)
        {
            
        }

        public void OnGeneratorFileWithBuildPreBuildHandler(ref IGenerator generator, ref IElementBuild build, ref FileInfo fileInfo, ref string _namespace, ref Dictionary<string, object> extraValues, ref bool skipBuildFile, ref bool abortBuild)
        {
            
        }

        public void OnGeneratorFileWithListPreBuildHandler(ref IGenerator generator, ref FileInfo fileInfo, ref string _namespace, ref IEnumerable list, ref bool skipBuildFile, ref bool abortBuild)
        {
            
        }

        public void OnGeneratorFileWithBuildPostBuildHandler(IGenerator generator, IElementBuild build, ref FileInfo fileInfo, string _namespace, Dictionary<string, object> extraValues, List<ICsFile> codeFiles, ref string output)
        {
            
        }

        public void OnGeneratorFileWithListPostBuildHandler(IGenerator generator, ref FileInfo fileInfo, string _namespace, IEnumerable list, List<ICsFile> codeFiles, ref string output)
        {
            
        }

        public void OnOutput(object sender, EventArgs eventArgs)
        {

        }
    }
}